takes a val from port. Will return nil if closed. Will block if nothing is available. Not intended for use in direct or transitive calls from (go ...) blocks. Use the clojure.core.async.go-checking flag to detect invalid use (see namespace docs).